package com.orm.mapping.xmltag;

import java.util.ArrayList;
import java.util.List;


//不能单独用，下面必须要有 if 节点
public class SetSqlNode implements SqlNode{
	private List<SqlNode> nodes;
	
	public SetSqlNode() {
		nodes = new ArrayList<>();
	}
	
	public void addSqlNode(SqlNode node) {
		nodes.add(node);
	}
	
	@Override
	public String apply(DynamicContext context) {
		boolean setFlag = false;
		for (SqlNode node : nodes) {
			String setString = node.apply(context);
			if (!setString.isEmpty()) {
				if (!setFlag) {
					setFlag = true;
					context.append(" set ");
				} else {
					context.append(" , ");
				}
				context.append(setString);
			}
		}
		if(!setFlag){
			throw new RuntimeException("set 子句没有任何条件,sql 构建失败");
		}
		return "";
	}
}

